//## begin module%3C6E5F980261.cm preserve=no
//	  %X% %Q% %Z% %W%
//## end module%3C6E5F980261.cm

//## begin module%3C6E5F980261.cp preserve=no
//	+----------------------------------------------+
//	| SVMBR - A program for training SVMs          |
//	+----------------------------------------------+
//	| * Creator, modeling, coding:                 |
//	|    Marcelo Barros de Almeida                 |
//	|    barros@smar.com.br                        |
//	|    http://litc.cpdee.ufmg.br/~barros/        |
//	| * Coding, improvements, bug fixes:           |
//	|    Bernardo Penna                            |
//	|    bprc@brfree.com.br                        |
//	+----------------------------------------------+
//
//	 Copyright(c) 2002 by Marcelo Barros de Almeida
//	                            All rights reserved
//
//	-[CVS]------------------------------------------
//	$Author$
//	$Date$
//	$Source$
//	$Name$
//	$Revision$
//	------------------------------------------------
//## end module%3C6E5F980261.cp

//## Module: smosolver%3C6E5F980261; Package specification
//## Subsystem: <Top Level>
//## Source file: D:\textotese\svmbr\src\smosolver.h

#ifndef smosolver_h
#define smosolver_h 1

//## begin module%3C6E5F980261.additionalIncludes preserve=no
//## end module%3C6E5F980261.additionalIncludes

//## begin module%3C6E5F980261.includes preserve=yes
//## end module%3C6E5F980261.includes

// solver
#include "solver.h"
//## begin module%3C6E5F980261.declarations preserve=no
//## end module%3C6E5F980261.declarations

//## begin module%3C6E5F980261.additionalDeclarations preserve=yes
//## end module%3C6E5F980261.additionalDeclarations


//## begin SMOSolver%3B87FD8602AC.preface preserve=yes
//## end SMOSolver%3B87FD8602AC.preface

//## Class: SMOSolver%3B87FD8602AC
//## Category: QP Solver package%3B88052B0288
//## Subsystem: <Top Level>
//## Persistence: Transient
//## Cardinality/Multiplicity: n

class SMOSolver : public Solver  //## Inherits: <unnamed>%3B87FDA2022A
{
  //## begin SMOSolver%3B87FD8602AC.initialDeclarations preserve=yes
  //## end SMOSolver%3B87FD8602AC.initialDeclarations

  public:
    //## Constructors (specified)
      //## Operation: SMOSolver%998688401
      SMOSolver (REAL cv, REAL tolv, REAL epsilonv, SVM *svmp, Kernel *kernelp, Data *datap, INT chunksizev);

    //## Destructor (generated)
      ~SMOSolver();


    //## Other Operations (specified)
      //## Operation: run%998688365
      INT run (INT maxi);

      //## Operation: run_chunck%998688366
      INT run_chunck (INT maxi);

      //## Operation: takeStep%998688386
      INT takeStep (UINT i1, UINT i2);

      //## Operation: examineExample%998688387
      INT examineExample (UINT i2);

      //## Operation: run%998880777
      INT run ();

      //## Operation: run_chunck%998880778
      INT run_chunck ();

      //## Operation: evalObjetive%998880788
      REAL evalObjetive (UINT i1, UINT i2, REAL lim);

      //## Operation: calcBias%999602348
      VOID calcBias ();

      //## Operation: init%1000125177
      VOID init (REAL cv, REAL tolv, REAL epsilonv, SVM *svmp, Kernel *kernelp, Data *datap, INT chunksizev);

      //## Operation: freeSpace%1000125178
      VOID freeSpace ();

      //## Operation: sincSets%1000125179
      VOID sincSets ();

      //## Operation: genWorkingSet%1000125180
      VOID genWorkingSet ();

      //## Operation: updateWorkingSet%1000125181
      VOID updateWorkingSet ();

    // Additional Public Declarations
      //## begin SMOSolver%3B87FD8602AC.public preserve=yes
      //## end SMOSolver%3B87FD8602AC.public

  protected:
    // Additional Protected Declarations
      //## begin SMOSolver%3B87FD8602AC.protected preserve=yes
      //## end SMOSolver%3B87FD8602AC.protected

  private:
    // Additional Private Declarations
      //## begin SMOSolver%3B87FD8602AC.private preserve=yes
      //## end SMOSolver%3B87FD8602AC.private

  private: //## implementation
    // Data Members for Class Attributes

      //## Attribute: heur%3B90BFB40250
      //## begin SMOSolver::heur%3B90BFB40250.attr preserve=no  private: INT [3] {U} 
      INT  heur[3];
      //## end SMOSolver::heur%3B90BFB40250.attr

      //## Attribute: workingSet%3BAA00F9039E
      //## begin SMOSolver::workingSet%3BAA00F9039E.attr preserve=no  private: INT * {U} 
      INT *workingSet;
      //## end SMOSolver::workingSet%3BAA00F9039E.attr

      //## Attribute: lazingSet%3BAA0109012A
      //## begin SMOSolver::lazingSet%3BAA0109012A.attr preserve=no  private: INT * {U} 
      INT *lazingSet;
      //## end SMOSolver::lazingSet%3BAA0109012A.attr

      //## Attribute: fullSet%3BAA011603BE
      //## begin SMOSolver::fullSet%3BAA011603BE.attr preserve=no  private: INT * {U} 
      INT *fullSet;
      //## end SMOSolver::fullSet%3BAA011603BE.attr

      //## Attribute: wsSize%3BAA01270340
      //## begin SMOSolver::wsSize%3BAA01270340.attr preserve=no  private: INT {U} 
      INT wsSize;
      //## end SMOSolver::wsSize%3BAA01270340.attr

      //## Attribute: lsSize%3BAA013400BE
      //## begin SMOSolver::lsSize%3BAA013400BE.attr preserve=no  private: INT {U} 
      INT lsSize;
      //## end SMOSolver::lsSize%3BAA013400BE.attr

      //## Attribute: fsSize%3BAA01400179
      //## begin SMOSolver::fsSize%3BAA01400179.attr preserve=no  private: INT {U} 
      INT fsSize;
      //## end SMOSolver::fsSize%3BAA01400179.attr

      //## Attribute: oldAlpha%3BAA014C0393
      //## begin SMOSolver::oldAlpha%3BAA014C0393.attr preserve=no  private: REAL * {U} 
      REAL *oldAlpha;
      //## end SMOSolver::oldAlpha%3BAA014C0393.attr

      //## Attribute: oldBias%3BAA015D013F
      //## begin SMOSolver::oldBias%3BAA015D013F.attr preserve=no  private: REAL {U} 
      REAL oldBias;
      //## end SMOSolver::oldBias%3BAA015D013F.attr

    // Additional Implementation Declarations
      //## begin SMOSolver%3B87FD8602AC.implementation preserve=yes
      //## end SMOSolver%3B87FD8602AC.implementation

};

//## begin SMOSolver%3B87FD8602AC.postscript preserve=yes
//## end SMOSolver%3B87FD8602AC.postscript

// Class SMOSolver 

//## begin module%3C6E5F980261.epilog preserve=yes
//## end module%3C6E5F980261.epilog


#endif
